Skip to content

fix(rendering): slice 19 — collapsed-running null-paint (corpus new-bug count → 0) - #451

Merged
Juliusolsson05 merged 1 commit into
integration/rendering-pipelinefrom
fix/rendering-dangling-tool-chip
Jul 7, 2026
Merged

Juliusolsson05 merged 1 commit into
integration/rendering-pipelinefrom
fix/rendering-dangling-tool-chip

Conversation

@Juliusolsson05

Copy link
Copy Markdown
Owner

Fixes the last corpus new-bug: history turns with a churn tool whose run never resolved painted a permanently-dangling chip legacy deliberately withheld (2026-06-29 1b2b5e96 capture).

The rule (hideUnresolvedHistoryTools policy bit, claude-only per D10): reject a semantic-history tool-use candidate as collapsed-running when the tool is in the legacy collapsed-activity churn set (Read/FileRead/Glob/Grep/Bash), has no block-local result evidence, and no committed tool_use/tool_result trace. Current-turn tools always paint; codex exempt (its MCP lifecycle delivers output in a later turn — the corpus proved a broader rule over-fires there, 15 fixtures in one run); non-churn tools (Task, AskUserQuestion, MCP) paint even unresolved.

Corpus archaeology bonus: three fixtures initially looked like over-suppression, but all five structurally-identical turns carry in_progress toolCallsById state — the difference is that legacy's own paintsDom gate landed 2026-06-24 (1254bed) and those bundles predate it. The pipeline matches modern legacy; the outdated-oracle divergences are verdicted with the commit citation.

Corpus final state: 0 untriaged, 0 new-bug across all 46 real-incident fixtures. 137 pipeline tests; tsc gate clean.

🤖 Generated with Claude Code

…new-bug)

The dangling-tool-chip defect (corpus 2026-06-29 1b2b5e96): collectTurn
selected every finalized tool block regardless of result arrival, so a
history turn whose churn-tool run never resolved painted a permanently
dangling chip legacy deliberately withheld.

Rule (policy bit hideUnresolvedHistoryTools, CLAUDE ONLY per D10):
reject a semantic-HISTORY tool-use candidate with reason
'collapsed-running' when ALL hold: toolName in the legacy
collapsed_activity churn set (Read/FileRead/Glob/Grep/Bash), no
block-local result evidence (resultContent/resultAt/resultIsError),
and no committed tool_use/tool_result trace. Current-turn tools always
paint (streaming legitimately awaits results); codex exempt (MCP
delivers function_call_output in a LATER turn - the corpus proved the
broader rule over-fires there within one run: 15 fixtures); non-churn
tools (Task, AskUserQuestion, MCP) paint even unresolved - a running
Task chip is live subagent signal.

Corpus archaeology bonus: three fixtures gained missing-in-next turns
that looked like over-suppression but are outdated oracles - legacy's
OWN paintsDom gate landed 2026-06-24 (1254bed), and those bundles were
captured before it. All five structurally-identical turns carry
lookups.toolCallsById status in_progress; modern legacy hides them
exactly like this rule does. Verdicted with the commit citation.

Corpus final state: 0 untriaged, 0 new-bug across all 46 fixtures.
137 pipeline tests.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@Juliusolsson05
Juliusolsson05 merged commit 07a2775 into integration/rendering-pipeline Jul 7, 2026
@Juliusolsson05
Juliusolsson05 deleted the fix/rendering-dangling-tool-chip branch July 7, 2026 21:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant